package com.settlement.system.model.entity.common;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.alibaba.excel.annotation.write.style.HeadStyle;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 退款稽核报表
 * @author Ximi
 * @since 2020-04-15
 */
@Data
@ExcelIgnoreUnannotated
@HeadStyle(fillBackgroundColor = 9,fillForegroundColor = 9)
@HeadRowHeight(value = 17)
@HeadFontStyle(fontHeightInPoints = 11)
public class RefundAuditReport extends BaseModel implements Serializable {

    /**
     * 退款日期
     */
    @ExcelProperty(value = "退款日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date backAmountDate;

    /**
     * 下单时间
     */
    @ExcelProperty(value = "下单时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date orderDate;

    /**
     * 订单来源
     */
    @ExcelProperty(value = "订单来源")
    private String orderSource;


    /**
     * 三级来源编码
     */
    @ExcelProperty(value = "三级来源编码")
    private String threeLevelChannelNo;

    /**
     * 三级来源编码
     */
    @ExcelProperty(value = "三级来源名称")
    private String threeLevelChannelName;

    /**
     * 优购单号
     */
    @ExcelProperty(value = "优购单号")
    private String refBillNo;

    /**
     * 原始订单号
     */
    @ExcelProperty(value = "原始订单号")
    private String spOrderNo;

    /**
     * 品牌编码
     */
    @ExcelProperty(value = "品牌编码")
    private String brandNo;

    /**
     * 品牌名称
     */
    @ExcelProperty(value = "品牌名称")
    private String brandName;

    /**
     * 商品编号
     */
    @ExcelProperty(value = "商品编码")
    private String itemCode;

    /**
     * 商品尺码
     */
    @ExcelProperty(value = "商品尺码")
    private String sizeCode;

    /**
     * 商品条码
     */
    @ExcelProperty(value = "商品条码(体育)")
    private String barCode;

    /**
     * 淘宝退款原因
     */
    @ExcelProperty(value = "淘宝退款原因")
    private String returnNote;

    /**
     * 退款编码
     */
    private String backAmountType;

    /**
     * 退款类型
     */
    @ExcelProperty(value = "退款类型")
    private String backAmountTypeName;

    /**
     * 退款数量
     */
    @ExcelProperty(value = "退款数量")
    private Integer applyRefundNum;

    /**
     * 退货款金额
     */
    @ExcelProperty(value = "退货款金额")
    private BigDecimal totalBalanceAmount;

    /**
     * 发货数量
     */
    @ExcelProperty(value = "发货数量")
    private Integer sendQty;

    /**
     * 发货金额
     */
    @ExcelProperty(value = "发货金额")
    private BigDecimal sendAmount;

    /**
     * 退货数量
     */
    @ExcelProperty(value = "退货数量")
    private Integer returnQty;

    /**
     * 退货金额
     */
    @ExcelProperty(value = "退货金额")
    private BigDecimal returnAmount;

    /**
     * 金额差异
     */
    @ExcelProperty(value = "金额差异")
    private BigDecimal diffAmount;

    /**
     * 退货数量
     */
    @ExcelProperty(value = "差异数量")
    private Integer diffQty;

    /**
     * 稽核状态
     */
    @ExcelProperty(value = "稽核状态")
    private String reStatusName;

    /**
     * 单据状态名称
     */
    @ExcelProperty(value = "单据状态名称")
    private String billStatusName;

    /**
     * 单据编码
     */
    @ExcelProperty(value = "单据编码")
    @ApiModelProperty(value = "单据编码")
    private String billNo;

    public Date getBackAmountDate() {
        return backAmountDate;
    }

    public void setBackAmountDate(Date backAmountDate) {
        this.backAmountDate = backAmountDate;
    }

    public Date getOrderDate() {
        return orderDate;
    }

    public void setOrderDate(Date orderDate) {
        this.orderDate = orderDate;
    }

    public String getOrderSource() {
        return orderSource;
    }

    public void setOrderSource(String orderSource) {
        this.orderSource = orderSource;
    }

    public String getThreeLevelChannelNo() {
        return threeLevelChannelNo;
    }

    public void setThreeLevelChannelNo(String threeLevelChannelNo) {
        this.threeLevelChannelNo = threeLevelChannelNo;
    }

    public String getRefBillNo() {
        return refBillNo;
    }

    public void setRefBillNo(String refBillNo) {
        this.refBillNo = refBillNo;
    }

    public String getSpOrderNo() {
        return spOrderNo;
    }

    public void setSpOrderNo(String spOrderNo) {
        this.spOrderNo = spOrderNo;
    }

    public String getBrandNo() {
        return brandNo;
    }

    public void setBrandNo(String brandNo) {
        this.brandNo = brandNo;
    }

    public String getBrandName() {
        return brandName;
    }

    public void setBrandName(String brandName) {
        this.brandName = brandName;
    }

    public String getItemCode() {
        return itemCode;
    }

    public void setItemCode(String itemCode) {
        this.itemCode = itemCode;
    }

    public String getBackAmountType() {
        return backAmountType;
    }

    public void setBackAmountType(String backAmountType) {
        this.backAmountType = backAmountType;
    }

    public String getBackAmountTypeName() {
        return backAmountTypeName;
    }

    public void setBackAmountTypeName(String backAmountTypeName) {
        this.backAmountTypeName = backAmountTypeName;
    }

    public Integer getApplyRefundNum() {
        return applyRefundNum;
    }

    public void setApplyRefundNum(Integer applyRefundNum) {
        this.applyRefundNum = applyRefundNum;
    }

    public BigDecimal getTotalBalanceAmount() {
        return totalBalanceAmount;
    }

    public void setTotalBalanceAmount(BigDecimal totalBalanceAmount) {
        this.totalBalanceAmount = totalBalanceAmount;
    }

    public Integer getSendQty() {
        return sendQty;
    }

    public void setSendQty(Integer sendQty) {
        this.sendQty = sendQty;
    }

    public BigDecimal getSendAmount() {
        return sendAmount;
    }

    public void setSendAmount(BigDecimal sendAmount) {
        this.sendAmount = sendAmount;
    }

    public Integer getReturnQty() {
        return returnQty;
    }

    public void setReturnQty(Integer returnQty) {
        this.returnQty = returnQty;
    }

    public BigDecimal getReturnAmount() {
        return returnAmount;
    }

    public void setReturnAmount(BigDecimal returnAmount) {
        this.returnAmount = returnAmount;
    }

    public BigDecimal getDiffAmount() {
        return diffAmount;
    }

    public void setDiffAmount(BigDecimal diffAmount) {
        this.diffAmount = diffAmount;
    }

    public String getReStatusName() {
        return reStatusName;
    }

    public void setReStatusName(String reStatusName) {
        this.reStatusName = reStatusName;
    }

    public String getSizeCode() {
        return sizeCode;
    }

    public void setSizeCode(String sizeCode) {
        this.sizeCode = sizeCode;
    }

    public String getThreeLevelChannelName() {
        return threeLevelChannelName;
    }

    public void setThreeLevelChannelName(String threeLevelChannelName) {
        this.threeLevelChannelName = threeLevelChannelName;
    }

    public String getBarCode() {
        return barCode;
    }

    public void setBarCode(String barCode) {
        this.barCode = barCode;
    }

    public Integer getDiffQty() {
        return diffQty;
    }

    public void setDiffQty(Integer diffQty) {
        this.diffQty = diffQty;
    }

    public String getReturnNote() {
        return returnNote;
    }

    public void setReturnNote(String returnNote) {
        this.returnNote = returnNote;
    }

    public String getBillStatusName() {
        return billStatusName;
    }

    public void setBillStatusName(String billStatusName) {
        this.billStatusName = billStatusName;
    }

    public String getBillNo() {
        return billNo;
    }

    public void setBillNo(String billNo) {
        this.billNo = billNo;
    }
}
